package com.tedu.weibo.common.interceptor;

import com.tedu.weibo.pojo.entity.User;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class CheckLoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        /**
         * preHandle方法，在进入Controller对应方法之前执行
         * 因此可以再此检验用户是否登录，未登录则跳转到登录页面
         */
        //session可以通过request获取
        HttpSession session = request.getSession();
        //通过session获取用户登录信息
        User user =(User) session.getAttribute("user");
        if (user == null){//未登录
            /**
             * 使用响应对象，要求浏览器重新请求下述路径
             * 之后返回false，通知SpringMVC，不再继续执行后续的拦截器，也不再执行目标方法
             * 此时框架会将响应交给Tomcat，而Tomcat就会将该响应发送给浏览器了。
             * sendRedirect，重定向
             */
            response.sendRedirect("/index.html");
            return false;
        }else {//已登录
            return true;
        }

    }
}
